package com.yidu.drug.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.yidu.drug.model.InventoryModel;
import com.yidu.drug.model.RepertoryModel;
/**
 * 库存Dao
 * @author tanglei
 * @date 2018年8月20日 上午9:46:07
 * @version 1.0
 */
public interface RepertoryModelMapper {
	/**
	 * 根据库存ID删除
	 * @param repId 传入是一个库存ID
	 * @return 返回一个影响的行数
	 */
    int deleteByPrimaryKey(String repId);

    /**
     * 增加库存数据(一次性增加所有字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int insert(RepertoryModel record);

    /**
     * 增加库存数据(可增加一个或多个字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int insertSelective(RepertoryModel record);

    /**
     * 根据库存ID查询
     * @param repId 传入一个库存ID
     * @return 返回一个库存对象
     */
    RepertoryModel selectByPrimaryKey(String repId);
    RepertoryModel selectByFilId(String filId);
    /**
     * 根据库存ID修改(可修改 一个或多个字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int updateByPrimaryKeySelective(RepertoryModel record);

    /**
     * 根据库存ID修改(一次性修改全部字段)
     * @param record 传入一个库存对象
     * @return 返回一个影响的行数
     */
    int updateByPrimaryKey(RepertoryModel record);
    
    /**
   	 * 根据业务ID删除的方法
   	 * @param matTypeId 材料类型ID
   	 * @return 删除的行数
   	 */
   	int deleteByPwId(@Param("pwId")String pwId,@Param("repNumber")Long repNumber);
   	
   	/**
   	 * 根据分公司ID查询药品库存和药品名称，药品类型名称(包括分页)
   	 * @param record 传入一个库存对象
   	 * @return 返回一个list集合
   	 */
   	List<RepertoryModel> findByFileIdDrugRepertory(RepertoryModel record);
   	
   	/**
   	 * 根据分公司ID查询药品库存的总行数
   	 * @param record 传入一个库存对象
   	 * @return 返回一个总行数
   	 */
   	Long findDrugRepertoryRows(RepertoryModel record);
   	
   	/**
   	 * 根据分公司ID查询原材料库存和原材料名称了，原材料类型
   	 * @param record 传入一个库存对象
   	 * @return 返回一个list集合
   	 */
   	List<RepertoryModel> findByFileIdMaterialsRepertory(RepertoryModel record);
   	
   	/**
   	 * 查询原材料库存的总行数
   	 * @param record 传入一个库存对象
   	 * @return 返回一个总行数
   	 */
   	Long findMaterialsRepertoryRows(RepertoryModel record);
   	
   	/**
   	 * 查询药品名称和药品类型名称
   	 * @param record 传入一个库存对象
   	 * @return 返回一个list集合
   	 */
   	List<RepertoryModel> findDrugNameAndDrugType(RepertoryModel record);
   	
    /**
     * 查询原材料名称和原材料类型名称
     * @param record 传入一个库存对象
     * @return 返回一个list集合
     */
   	List<RepertoryModel> findMaterialsNameAndMaterialType(RepertoryModel record);
   	/**
   	 * 根据分公司id查询库存id
   	 * @param filId
   	 * @return
   	 */
   	public String findById(String filId);
   	/**
   	 * 根据分公司id修改数量
   	 * @param repNumber
   	 * @param filId
   	 * @return
   	 */
   	int updates(@Param("repNumber")Long repNumber,@Param("filId")String filId);


    /**
     * 根据ID增加
     * @param filId
     * @return
     */
   	List<RepertoryModel> insertById(RepertoryModel record);

    /**
     * 根据业务ID与分公司ID查询
     * @param record
     * @return
     */
     List<RepertoryModel> selectById(RepertoryModel record);
     
     /**
      * 根据业务ID和分公司ID修改
      * @param record
      * @return
      */
     int updateById(RepertoryModel record);
     
     /**
      * 根据业务ID查询库存数量
      * @param pwId 业务ID
      * @return 库存对象
      */
     RepertoryModel findByPwId(String pwId);
     /**
      * 根据分公司ID和业务Id查询库存id
      * @param pwId 业务Id
      * @param filId 公司ID
      * @return 库存id
      */
     String findByFilIdPwId(@Param("pwId")String pwId,@Param("filId")String filId);
     

}